Placing cells of an IC design using partition preconditioning

ABSTRACT

A method and system of placing cells of an IC design using partition preconditioning. In one embodiment, cells of an integrated circuit design are grouped to model curvature of an objective function. The grouping produce a plurality of cell clusters. The model formed may be a binary tree. The curvature of the objective function for each of the cell clusters is estimated. Interactions between said cell clusters are described as a relation. A set of preconditioning values which achieves a separation of variables of the relation is determined. The preconditioning may be applied to a conjugate gradient placement process to advantageously decrease the number of iterations required to produce an optimized placement of the cells.

FIELD OF THE INVENTION

[0001] Embodiments of the present invention relate to the field ofelectronic design automation (EDA). More particularly, embodiments ofthe present invention relate to computer implemented processes for cellplacement and other optimizations used in the design and fabrication ofintegrated circuit devices.

BACKGROUND ART

[0002] The rapid growth in complexity of modem electronic circuits hasforced electronic circuit designers to rely upon computer programs toassist or automate most steps of the design process. Typical circuitstoday contain hundreds of thousands or millions of individual pieces or“cells.” Such a design is much too large for a circuit designer or evenan engineering team of designers to manage effectively manually.

[0003] One of the most difficult, complex and time-consuming tasks inthe design process is known as cell placement, or, more simply,“placement.” The placement problem is the assignment of a collection ofconnected cells to positions in a 2-dimensional arena, such thatobjective functions such as total wire length, etc., are minimized.

[0004] Conventionally, both the X and Y coordinates of the cells aredetermined simultaneously. There are many well-known tools commerciallyavailable to accomplish this task, for example, the “Physical Compiler”commercially available from Synopsys of Mountain View, Calif.

[0005] Modern chip design methods often involve combining both largedesign elements with smaller design elements. For example, a largeelement may be a random access memory, or RAM, which may be designed byan automated memory compiler. Other examples of large design elementsinclude intellectual property blocks, or “IP blocks.” Such IP blocks mayimplement complex functions, for example a processor core or acommunications design, e.g., a UART, which were designed previously andmade available for integration into future designs.

[0006] The smallest design element is typically a cell, which mayimplement a basic logic function, for example a NAND gate. Such cellsmay be used to integrate existing IP designs or memory blocks together,and/or to implement new designs.

[0007] It is not unusual for a large element to be three to six ordersof magnitude larger than the smallest elements. For example, it is notuncommon for a RAM (random access memory) block or cell to comprise achip area equivalent to the area of 75,000 to 100,000 individual cells.

[0008] Modern integrated circuit designs may comprise hundreds ofthousands to several million individual cells that need to be placedefficiently. Even with powerful computer systems, the time required fora placement “run” may be measured in days. A successful integratedcircuit design may take several such placement runs, interleaved withother design activities, for example, wiring and post-layout simulation.

[0009] The time required for a placement process is typically not linearwith respect to the number of cells to be placed. For example, a typicalplacement process may require on the order of N^(1.5) time to process adesign, where N is the number of cells. For example, a design of onemillion cells may take approximately 31 times as long to place as adesign of one hundred thousand cells, an increase of only ten times thecell count.

[0010] Unfortunately, the processing requirements to place new chipdesigns are outpacing the rate of processing speed increases madeavailable through advances in the computing arts. Consequently,improvements in integrated circuit design methods, especially for theplacement problem, are highly sought after.

SUMMARY OF THE INVENTION

[0011] Embodiments of the present invention are drawn to computercontrolled processes to place cells of an integrated circuit design fordevice fabrication and specifically precondition a placing of cells ofan integrated circuit design. Further embodiments of the presentinvention estimate the curvature of an objective function used tooptimize the placement of cells of an integrated circuit design. Stillfurther embodiments of the present invention exploit a sequential natureof processing cells to solve a system of relations in a very efficientmanner. These advantageous processes are used to more efficientlycompute the X and Y locations for cells that make up the design.

[0012] A method and system of partition preconditioning are disclosed.In one embodiment, cells of an integrated circuit design are grouped tomodel curvature of an objective function. The grouping produces aplurality of cell clusters. In one embodiment, the model formed may be abinary tree. The curvature of the objective function for each of thecell clusters is then estimated. Interactions between said cell clustersare described as a relation. A set of preconditioning values whichachieves a separation of variables of the relation is determined. Thepreconditioning may be applied to a conjugate gradient placement processto advantageously decrease the number of iterations required to producean optimized placement of the cells. The cell placement obtained in thismanner can be used to fabricate an integrated circuit device.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 illustrates a computer controlled method for determining aset of preconditioning values for use in placing cells of an integratedcircuit design, according to an embodiment of the present invention.

[0014]FIG. 2 illustrates a simplified tree-of-springs model, accordingto an embodiment of the present invention.

[0015]FIG. 3 illustrates a general tree of springs model, according toan embodiment of the present invention.

[0016]FIG. 4 illustrates a portion of a hierarchical binary tree model,according to an embodiment of the present invention.

[0017]FIG. 5 illustrates a five-level tree binary tree model, accordingto an embodiment of the present invention.

[0018]FIG. 6 illustrates the right half of a tree, according to anembodiment of the present invention.

[0019]FIG. 7 illustrates circuitry of computer system, which may form aplatform for the implementation of embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

[0020] In the following detailed description of the present invention,an automated cell placer having partition preconditioning, numerousspecific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will be recognizedby one skilled in the art that the present invention may be practicedwithout these specific details or with equivalents thereof. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the present invention.

[0021] Notation and Nomenclature

[0022] Some portions of the detailed descriptions which follow (e.g.,process 100) are presented in terms of procedures, steps, logic blocks,processing, and other symbolic representations of operations on databits that can be performed on computer memory. These descriptions andrepresentations are the means used by those skilled in the dataprocessing arts to most effectively convey the substance of their workto others skilled in the art. A procedure, computer executed step, logicblock, process, etc., is here, and generally, conceived to be aself-consistent sequence of steps or instructions leading to a desiredresult. The steps are those requiring physical manipulations of physicalquantities. Usually, though not necessarily, these quantities take theform of electrical or magnetic signals capable of being stored,transferred, combined, compared, and otherwise manipulated in a computersystem. It has proven convenient at times, principally for reasons ofcommon usage, to refer to these signals as bits, values, elements,symbols, characters, terms, numbers, or the like.

[0023] It should be borne in mind, however, that all of these andsimilar terms are to be associated with the appropriate physicalquantities and are merely convenient labels applied to these quantities.Unless specifically stated otherwise as apparent from the followingdiscussions, it is appreciated that throughout the present invention,discussions utilizing terms such as “indexing” or “processing” or“computing” or “translating” or “calculating” or “determining” or“scrolling” or “displaying” or “recognizing” or “generating” or“selecting” or “moving” or “repeating” or “combining” or “testing” of“setting” or “increasing” or “transforming” or “determining” or“optimizing” or “synthesizing” or “grouping” or “estimating” or“describing” or the like, refer to the action and processes of acomputer system, or similar electronic computing device, thatmanipulates and transforms data represented as physical (electronic)quantities within the computer system's registers and memories intoother data similarly represented as physical quantities within thecomputer system memories or registers or other such information storage,transmission or display devices.

[0024] Placing Cells of an IC Design Using Partition Preconditioning

[0025] Embodiments of the present invention are described in the contextof the field of electronic design automation (EDA). More particularly,embodiments of the present invention relate to techniques for cellplacement and other optimizations used in the design and fabrication ofintegrated circuit devices. It is appreciated, however, that elements ofthe present invention may be utilized in other areas of EDA.

[0026] The functional design of an electronic integrated circuitspecifies the cells (individual functional elements) that compose thecircuit and which pins of which cells are to be coupled together usingwires or “nets.” Typically, much or all of the design of an integratedcircuit is specified in a high level language, for example “HDL.” Thougha process of computer implemented synthesis, or “synthesizing,” highlevel constructs are converted into cells and nets.

[0027] “Placement” or “placing” generally refers to the important stepof assigning a physical location, typically in two dimensions, in theprocess of physically implementing the electronic circuit, for examplein an integrated circuit or on a printed wiring board. Typically, aplacement process (“placer”) receives as input a list of cells, or basiccircuit elements, and a list of the wiring interconnections, nets, amongthe cells. This is commonly known as a “netlist.” The placer thendetermines an efficient placement for these cells according to some setof criteria, e.g., wire length minimization, etc. The placer is acomputer tool.

[0028] U.S. Pat. No. 6,282,693, issued Aug. 28, 2001, entitled“Non-linear Optimization System and Method for Wire Length and Densitywithin an Automatic Electronic Circuit Placer,” to Naylor, et al., andassigned to the assignee of the present invention, is herebyincorporated herein by reference in its entirety.

[0029] U.S. Pat. No. 6,301,693, issued Oct. 9, 2001, entitled“Non-linear Optimization System and Method for Wire Length and DelayOptimization for an Automatic Electronic Circuit Placer,” to Naylor etal., and assigned to the assignee of the present invention, is herebyincorporated herein by reference in its entirety.

[0030] “Preconditioning” is generally understood to refer to the act ofscaling, or a scaling of, variables that appear in a problem in order tomake an optimization process converge faster. For example, while tryingto optimize a multi-variable objective function, a given quantity changein a first variable may have much more effect on the objective functionthan the same change in another variable. The process of optimizing theobjective function will tend to favor changes in the first variable.

[0031] This may lead to extremely slow convergence of the optimizationprocess. Preconditioning serves to scale the variables, or “level theplaying field,” such that changing each variable affects the objectivesfunctions by a comparable amount, resulting in quicker convergence tothe global minimum.

[0032] For example, the gradient of F(x,y)=x²+3y² does not pointdirectly to the minimum of the function. However, by scaling thefunction F(x′,y′)=x′²+y′², the negative of the gradient points directlyat the minimum. Preconditioning may be thought of as a process oftransforming variables of a function such that the (negative of the)gradient of the function points directly at the optimum set of values tominimize the function.

[0033] A master objective function (MOF) may be defined which evaluatesthe quality of a particular cell placement. In effect, the MOF measuresthe “goodness” of the particular cell placement. The MOF is chosen sothat values of variables which minimize the MOF correspond to a goodcoarse placement.

[0034] In particular, the MOF is a weighted sum of functions whichevaluate various metrics of an integrated circuit placement. Animportant metric taken into consideration within the MOF is the densityfunction which measures how well spread out the cells are in theplacement. Other component functions of the MOF may be a wire-lengthfunction which measures total linear wire-length, a delay function whichmeasures circuit timing, and a power function which measures circuitpower consumption. The barrier metric or “boundary function” penalizesplacements with cells outside the allowed placement region. An MOF isshown below as Relation 1, where the notation “*vars” denotes vectorvariables:

MOF(*vars)=wb*barrier(*vars)+wd*density(*vars)+wL*wirelength(*vars)+wT*delay(*vars)+wp*power(*vars)  (1)

[0035] where the w terms are constants and *vars include:

[0036] (x, y) coordinates of cells, pins for cell placement,

[0037] size of cells and buffers for sizing,

[0038] buffer area of wire for buffer insertion,

[0039] buffer tree depth on wire branch for buffer tree balancing, and

[0040] logic tree depth on logic tree input for timing drivenstructuring.

[0041] It is to be appreciated that a modern semiconductor basedintegrated circuit design may have several million cells. As describedabove, a master objective function for such a design may have tens ofvariable terms per cell. Consequently, a master objective function maycomprise, for example, tens to hundreds of millions of terms.

[0042] Based upon an assumption that the preferred master objectivefunction is a quadratic expression, an ideal preconditioning to minimizea master objective function could be constructed by computing the firstand second derivatives of each variable with respect to all of the othervariables of the master objective function. The optimum direction ofmovement to minimize the MOF could then be determined at any given cellby dividing the gradient of the MOF for the cell by a matrix comprisedof the second derivatives of the MOF.

[0043] Unfortunately, a realistic MOF may not be quadratic, and may beapproximated as a quadratic expression only near the minimum. Inaddition, it may be commercially infeasible to invert a matrix thatcomprises millions of terms on a side. Further, conventional approachesto preconditioning, for example in a variety of physics problems, dependupon highly accurate curvature models. However, in contrast toconventional experience, the problem of placing cells in an integratedcircuit benefits from more generalized, more global curvature models.This may be due, in part, to the complexity of the MOF. For example,there are many interactions between terms of the MOF, and the MOF ishighly non-linear. Consequently, efforts to create a partitionpreconditioning for placement of cells within an integrated circuit havebeen poorly served by conventional approaches to precondition a problem,and a novel approach is required.

[0044] A usable preconditioning may be determined by estimating thesecond derivative of the master objective function. Relation 2 belowrepresents the second derivative with respect to x of the masterobjective function as the sum of the second derivatives of thecomponents of the master objective function. $\begin{matrix}{\frac{\partial^{2}{MOF}}{\partial x_{i}^{2}} = {\frac{{\partial^{2}{wd}}*{{density}\left( {\,{*{vars}}} \right)}}{\partial x_{i}^{2}} + {\frac{{\partial^{2}{wL}}*{wire\_ length}\left( {\,{*{vars}}} \right)}{\partial x_{i}^{2}}\quad \ldots}}} & (2)\end{matrix}$

[0045] So as not to obscure elements of the present invention, only twoterms of the MOF (Relation 1) are shown in Relation 2. It is appreciatedthat other terms of a MOF may be similarly differentiated and included.

[0046]FIG. 1 illustrates a computer controlled method 100 fordetermining a set of preconditioning values for use in placing cells ofan integrated circuit design, according to an embodiment of the presentinvention. The entire method 100 will be summarized immediately below,and each step will subsequently be discussed in greater detail in thefollowing pages.

[0047] In step 110, cells of an integrated circuit design are grouped tomodel curvature of an objective function, for example the MOF given inRelation 2. In step 120, curvature of the objective function isestimated for each of the clusters. In step 130, the interaction betweenclusters is described as a relation. In step 140, a set ofpreconditioning values which achieves a separation of variables of therelation is determined.

[0048] In optional step 150, the preconditioning values determined instep 140 are used to perform an automatic cell placement. It is to beappreciated that embodiments of the present invention are well suited toperforming either an intermediate placement or a final placement of thecells of an integrated circuit design using the preconditioning values.

[0049] Expanding upon step 110, in one embodiment, curvature of anobjective function is modeled using a hierarchical binary tree. Theleaves of the tree are single cells of the integrated circuit design andeach node in the tree represents a cluster or group of cells. The rootrepresents all cells. Nodes may comprise multiple clusters. A treestructure facilitates placement optimization by allowing entire clustersto move by changing a single variable, e.g., the variable associatedwith the cluster's node in the tree. Tree-based clustering speedsconvergence by decreasing the time for one cell's movement to affect allother cells from on the order of N^(0.5) to the order of log(N), Forlarge N, this yields substantial improvements in runtime.

[0050] It is desirable for the tree's clustering (grouping) to match thestructure of the integrated circuit design so that the cells in acluster start together and stay together during placement. An example isa large integrated circuit design with a multiplier module inside it.The multiplier module is highly connected initially, and typicallyshould stay that way throughout the placement. Consequently, a “good”grouping would make the exemplary multiplier one of the clusters in thetree. However, the preconditioning process does not know that thisportion of the design is a multiplier. A preconditioning process has noknowledge of the user hierarchy or the high level design languagetypically used to generate an integrated circuit design. To apreconditioning process, the design is represented by a collection ofleaf-level cells connected by wires. Consequently, a preconditioningprocess should determine cluster groups primarily by their connectivityand current position.

[0051] The tree should be built from the leaves up. Initially, the treeis empty and all cells are ungrouped. Cells are optimally placedtogether to determine the next levels of hierarchy based upon a measureof how related they are.

[0052] Small link structures called “springs” are created between pairsof cells. The springs are used to model the attraction (or spring“force”) between cells and/or groups of cells represented by tree nodes.It is to be appreciated that such springs do not physically exist.Rather they may be thought of as a prediction of relationships amongcells and clusters of cell in a final, optimized placement of thosecells.

[0053] A spring is created between two cells if and only if they areconnected by a net with no more than T pins (interconnects). T is afixed threshold, for example, five. A threshold is needed because a netwill require on the order of N² springs, where N is the number of pinson the net. The exclusion of the larger nets is generally notdetrimental because large nets are less significant when measuring therelatedness of two cells.

[0054] Each spring is assigned a score, or “spring force.” The score isa measure of how related the two cells are. The preconditioning processhas information on where all cells are currently placed, for example thecell's X,Y coordinates. It also knows which net(s) connect the two cellsand how many pins there are on each net.

[0055] Longer nets should receive a lower score, on the basis that ifthe cells are not held closely together in the present position, thereis probably no need to hold them closely together and hence these cellsare not highly related. Nets with more pins should also receive a lowerscore, on the basis that there is no immediate grouping implied by thesenets. Any grouping implied will take place on a larger scale (e.g., fora clock net) and can be left until later in the process when the higherlevels of the tree are being grouped.

[0056] Consequently, an exemplary relation for determining a relatednessscore is presented as Relation 3, below:

score(C1,C2)=sum over nets i connecting C1 and C2(Wi)  (3)

[0057] where C1 and C2 are leaf-level cells,

[0058] Wi=2/(Ni*(Ni−1)*Li²),

[0059] Ni is the number of pins on net i, and Li is the length of net i,which is measured as half the length of the perimeter of the boundingbox of all pins on the net.

[0060] It is appreciated that embodiments of the present invention arewell suited to a wide variety of systems for scoring the relatedness ofcells. For example, a score could be based on distance between the twocells instead of the length of the nets joining them.

[0061] The 2/N(N−1) formula implies that the sum of contributions of anynet will be independent of the number of pins on the net (because thenumber of attracts will be 0.5N(N−1)), although this condition is notnecessary for embodiments of the present invention.

[0062] Relation 3 above gives a score or “strength” for each spring. Thesprings will subsequently be merged by inserting them all into apriority queue and merging the best ones first. However, if the score ofRelation 3 above was further used to determine merging, the subsequentmerging is generally unstable and tends to create very unbalanced trees.A more desirable merging metric would favor merging small cells (orclusters) earlier so that such small cells (or clusters) are not leftuntil later mergers with the consequence that the tree becomesunbalanced.

[0063] A new metric for merging the priority queue is given by Relation4, below: $\begin{matrix}{{{metric}\left( {{C1},{C2}} \right)} = \frac{{score}\left( {{C1},{C2}} \right)}{{\min \left( {{{Area}({C1})},{{Area}({C2})}} \right)}^{2}}} & (4)\end{matrix}$

[0064] where Area(X) is the area of object X (the actual physical areaof the cell(s) in the cluster), and “min” is a function which choosesthe minimum value from an argument list.

[0065] Embodiments of the present invention are well suited to a varietyof metrics to determine merging sequence. Examples investigated butfound less desirable than Relation 4 include: (Area(C1)+Area(C2))2;(Area(C1)*Area(C2))²; andlog(Area(C1))+log(Area(C2))−log(Area(C1)+Area(C2)).

[0066] According to the process, once the priority queue is set up, thebest or “strongest” spring is identified and “collapsed.” That is, a newnode is created in the tree that is the parent of the leaf-cell nodesfor C1 and C2. The new node represents the grouping of C1 and C2. Theold spring between C1 and C2 is destroyed. Some of the springsconnecting C1 and C2 to other nodes may need to be merged. For example,C1 and C2 may both have an attraction (spring) to C3. These two springswill be merged into a single new spring between the new parent node andC3. When two springs are merged, their scores (not their metrics) aresummed. The old springs are deleted from the priority queue and the newspring, with its consequent new metric, is inserted. Advantageously,executing and merging may be performed in order (log N) time perattraction link, or spring.

[0067] The merging process, using the formula above, is repeated.However instead of C1 and C2 always being leaf cells, they may be groupsor clusters of cells represented by nodes in the tree. It is appreciatedthat the Relation 3 need not be invoked again. Scores are summed whenattracts are merged.

[0068] After repeated iterations of the merging process, there will beno springs left to merge. At this point, the disjoint netlists resultingfrom pruning out all of the nets with more than T pins from the designwill remain unmerged. Many of the disjoint netlists are single cellsthat were attached only to nets with T pins or more. A binary tree iscreated for each disjoint netlist. All of the disjoint trees are mergedinto (i.e. made children of) a single node, the root node. The root nodeis special in that it represents the entire design. Consequently, theroot node has no placement information for cells, or clusters of cells,associated with it.

[0069] A bottom-up tree-building method is preferred because it is fastand not overly complex to implement. Embodiments of the presentinvention are also well suited to a top-down tree-building approach.However such a top-down tree-building method is likely to introduce atleast another factor of log N into the runtime, since all cellstypically need to be traversed at each level of the tree. Manyconventional placement processes employ top-down partitioning. Such atop-down partitioning has a typical runtime on the order of N ^(1.5),which is much slower than embodiments of the present invention. Althougha top-down partitioning may result in a more balanced tree, thebottom-up partitioning herein described is advantageously much faster,and sufficient for preconditioning.

[0070] A tree-of-springs model has as its leaf nodes actual cells of theintegrated circuit design. It is appreciated that a single “cell” may berelatively simple, e.g., a NAND gate, or very complex, e.g., a “hardmacro.” Each cell is further modeled as having an attraction to an“attraction point.” A cell's attraction point is a point on the chiptowards which the cell is “attracted.” The attraction point is anartificial construct used to balance other “forces” (attractivetendencies) which influence the placement of a cell.

[0071]FIG. 2 illustrates a simplified tree-of-springs model, accordingto an embodiment of the present invention. Cell 210 and cell 220 arecells of an integrated circuit design. Spring 215 models the attractionforce between cells 210 and 220. It is to be appreciated that in a morecomplex model, spring 215 may actually be exerting a repulsive force.Spring 225 models the attraction for cell 220 to its attraction point230. Spring 245 models the attractive force of cell 210 to itsattraction point 240. The use of attraction points serves to keep themodel in balance. Without attraction points 230, 240 and springs 225,245, cells 210 and 220 would be pulled as close as possible together.

[0072] According to an embodiment of the present invention, the actuallocation of attraction points need not be determined. Given that theenergy in a spring is proportional to the square of its displacement, atree-of-springs objective function may be expressed as shown below inRelation 5. $\begin{matrix}{{Fsprings} = {{\frac{1}{2}{\sum\limits_{\langle{i,j}\rangle}{C_{i\quad j}\left( {x_{i} - x_{j}} \right)}^{2}}} + {\frac{1}{2}{\sum\limits_{i}{C_{i\quad 0}\left( {x_{i} - x_{i0}} \right)}^{2}}}}} & (5)\end{matrix}$

[0073] where x_(i), and x_(j) are different cells, and x_(i0) is theattraction point. It is to be appreciated that since the secondderivative of Relation 5 is a constant, the actual value of x_(i0), thelocation of the attraction point, does not contribute to the curvature.

[0074]FIG. 3 illustrates a general tree of springs 300, according to anembodiment of the present invention. Root node 301 represents the entiredesign. Leaf nodes 302-308 represent individual cells of the design.Node 320 is a cluster node representing leaf nodes (cells) 305-308, thegroupings of those cells and the attraction “forces” of the cluster. Forexample, cell 307 is more strongly attracted to cell 308 than to cell306. However, cell 307 has a stronger attraction to cell 306 than tocell 302.

[0075] Given a master objective function of n variables, F, to beoptimized, the second derivative is known as the Hessian, H. H is an n×nmatrix of second derivatives with respect to each variable of thefunction. A desirable preconditioning is related to the inverse of H,denoted H⁻¹. Inverting a matrix is normally an N³ process. That is, timeto invert the matrix is proportional to the cube of the size of thematrix. However, as will be discussed in greater detail below, thisparticular H matrix is extremely sparse and may be inverted in lineartime. The inverse Hessian may be determined by traversing thetree-of-springs model from child node to parent, inverting at each node.Applying H⁻¹ to a vector may also be performed in linear time. As abeneficial result of the tree-of-springs model, all operations ofdetermining a preconditioning and applying the preconditioning may beperformed in linear time.

[0076] Preconditioning may be viewed as a domain transfer between a“real” or “chip” space, e.g., a master objective function in terms ofthe X, Y coordinates of cell positions, and a “preconditioned” spacewherein an objective function is more easily optimized. A function Atransforms a vector X in chip space to a vector Y in preconditioningspace. A-inverse (A⁻¹) similarly transforms Y′ from preconditioningspace into X′ in chip space. A function A_(G) transforms a gradientvector g_(x) from chip space to g_(y) in preconditioning space.

[0077] According to an embodiment of the present invention, step 150 maybe implemented as described below. Given a cell location in a placementX, via the use of the transforms A and A_(G), this location and itsgradient g_(x), may be transformed into the preconditioning domain,producing Y and g_(y). An optimizing process, for example the conjugategradient optimization method described in U.S. Pat. No. 6,282,693, maythen produce a new placement Y′. New placement Y′ may then betransformed into chip space via A⁻¹, producing X′. The gradient of X′ isdetermined in chip space, transformed into preconditioning space, andyet another new placement is determined. This process is repeated untilno further improvement in the master objective function is possible, oranother termination criteria is met, for example a maximum run time haselapsed.

[0078] A smoothing variable, alpha, is used to alter the MOF throughmultiple passes of a conjugate-gradient placement process. To estimatecurvature of the MOF at a particular cell placement, the smooth length,alpha, is assumed to be much larger than the size of the bounding box.For example, all of the cells of a cluster are assumed to be in oneplace. Based upon this assumption, the actual location of a particularcell within a net does not matter (for the purposes of estimatingcurvature).

[0079] The wire length is given by Relation 6 below: $\begin{matrix}{{wirelength} = {{\alpha \quad {\log \left( {\sum ^{\frac{x_{i}}{\alpha}}} \right)}} - {\alpha \quad {\log \left( {\sum ^{- \frac{x_{i}}{\alpha}}} \right)}}}} & (6)\end{matrix}$

[0080] Where α is the smooth length and x_(i) is cell location.

[0081] The derivative of Relation 6 takes the form shown below inRelation 7: $\begin{matrix}{{wirelength}^{\prime} = {\frac{^{\frac{x_{i}}{\alpha}}}{\sum ^{\frac{x_{i}}{\alpha}}} + \frac{^{- \frac{x_{i}}{\alpha}}}{\sum ^{- \frac{x_{i}}{\alpha}}}}} & (7)\end{matrix}$

[0082] Substituting x_(i)=0 based on the previous assumption that alphais much larger than the net length, the derivative takes the form of2/N, where N is the number of pins on the net. The second derivative ofRelation 6 is approximately 2/αN², which is an estimate of curvature.Consequently the estimated curvature depends only on the number of pinsin the net and size of the smooth length. Thus, the curvature of the MOFat a cell due to a single pin may be computed as a constant, C. Thetotal curvature at the cell, due to wire length is then approximatelyequal to the sum of the curvatures for each net coupled to the cell.

[0083] According to an alternative embodiment of the present invention,a weighting factor may be combined with wire length. For example, apredetermined net, e.g., a clock net, may be given a greater weightingfactor in order that the optimization process favors making the clocknet shorter.

[0084] Another component of the master objective function may be adensity term. In general terms, a density function works to move cellsapart, for example, so that they do not overlap. It is appreciated thata density function typically does not ensure that cell placements meetall requirements for production, e.g., that the placements are “legal.”

[0085] There are two principal stages to estimate the curvature of theMOF. First, the spatial curvature of the field density grid isestimated. Second, the curvature (i.e. 2nd derivative) of the fieldobjective function with respect to the coordinate of a single cell C isestimated. This is done for each cell.

[0086] The field grid is a 2-dimensional array of numbers. It is adensity map of cells over the placement area. The field grid isdescribed in greater detail in U.S. Pat. No. 6,282,693. Expressed as afunction F(x,y) where x and y are the integer indices in the array, theneach region in the function will have a different curvature. Thecurvatures are then ∂²F/∂x², the self-curvature in x, and ∂²F/∂y², theself-curvature in y. (The cross curvature is not used.) The average ofthe two curvatures over the entire grid is then measured.

[0087] To measure the x curvature, the field grid is convolved with asmall curvature-measuring template function. This gives a 2-dimensionalmap of x curvature over the chip. Then the map is averaged to get thecurvature.

[0088] A template function T(x,y) is designed to match the shape of thefield contribution function C(x,y) for a typical cell. T is equal to∂²C/∂x², the second derivative in x of C(x,y).

[0089] A field contribution function C(x,y) is described in U.S. Pat.No. 6,282,693 as the product of two piecewise quadratic functions, onein x and one in y. Each looks like a hill made out of four quadraticsections. The dimensions of the hill depend on the radius R, unless thecell is large. A typical cell is assumed to be small.

[0090] If the radius, R, equals 2, then T(x,y) is given by Table 1,below: TABLE 1 0.5 −0.5 −0.5 0.5 1 −1 −1 1 0.5 −0.5 −0.5 0.5

[0091] If R equals 4, T(x,y) is given by Table 2, below: TABLE 2 0.1250.125 −0.125 −0.125 −0.125 −0.125 0.125 0.125 0.5 0.5 −0.5 −0.5 −0.5−0.5 0.5 0.5 0.875 0.875 −0.875 −0.875 −0.875 −0.875 0.875 0.875 1 1 −1−1 −1 −1 1 1 0.875 0.875 −0.875 −0.875 −0.875 −0.875 0.875 0.875 0.5 0.5−0.5 −0.5 −0.5 −0.5 0.5 0.5 0.125 0.125 −0.125 −0.125 −0.125 −0.1250.125 0.125

[0092] It is appreciated that these templates would be different for adifferent contribution function.

[0093] The y curvature computation is similar to the x computation,except that the grid is mirrored about the line x=y (i.e. interchange xand y) before the computation.

[0094] Consider a cell C at coordinate (x, y). As x is varied, the fielddensity grid will change and hence the field objective, ob, will change.The process estimates the curvature of that change without actuallymoving the cell in order to measure it. The quantities being estimatingare the self-curvature of the field objective in x, ∂²ob/∂x², and theself-curvature of the field objective in y, ∂²ob/∂y².

[0095] According to an embodiment of the present invention, step 130will now be discussed in greater detail. In order to determine arelation for the curvature of a field objective function as the positionof any cell C varies, some assumptions about the field density grid maybe made. For example, assume that the grid is continuous (infinitelyfine) and that it is locally quadratic. Complex, but well knownmathematics (e.g., a conventional symbolic calculus software package)may then be used to compute the effect of moving an existing cell by anamount dx. It is appreciated that similar assumptions for a differentfield contribution function are well suited to embodiments of thepresent invention.

[0096] Relation 8, below, gives the curvature of a field objectivefunction as the position of any cell C varies. It is appreciated thatRelation 8 corresponds to a specific field contribution function.$\begin{matrix}{\frac{{\partial^{2}o}\quad b}{\partial x^{2}} = {{h^{2}\left( {\frac{184}{45} + \frac{16w}{3R}} \right)} + {h\frac{\partial^{2}F}{\partial x^{2}}{R\left( {{\frac{184}{45}R} + {16\left( {R\quad w} \right)^{1/2}}} \right)}}}} & (8)\end{matrix}$

[0097] where h is the magnitude of contribution of C, which isproportional to Area(C) if C is small and is fixed if C is large, and wis y_dim−R/2, where y_dim is the y-size of the contribution of C. If Cis small, y_dim=R/2 and hence w=0. Large cells have nonzero values of w,which depend on the y-size of the cell. The calculation of ∂²ob/∂y² issimilar.

[0098] As a result of computing the estimated curvatures for wire lengthand density, each cell (leaf node of the binary tree) may be assigned anumber. That cell value is an estimate of the curvature for moving thecell. In other words, the cell value is an estimate of the rate ofchange of the derivative of the master objective function. Using numericanalysis terminology, these values estimate the diagonal element of theHessian.

[0099] Advantageously, calculating the self second derivatives asdescribed above is of order N, whereas there are N² total secondderivatives. Consequently, this technique is orders of magnitude fasterthan conventional numeric analysis which requires inverting the Hessianmatrix.

[0100] Curvature estimates for parent nodes (clusters of cells, orclusters of clusters) may be determined from the curvature estimates foreach leaf node (which represents an individual cell).

[0101]FIG. 4 illustrates a portion 400 of a hierarchical binary tree,according to an embodiment of the present invention. Node 401 is aparent node, and represents a cluster of cells or a cluster of clustersof cells. Nodes 402 and 403 are child nodes, and in general may also bea parent node to other child nodes (not shown). Nodes 401, 402 and 403may represent a branch at any level of the tree. If nodes 402 and 403are leaf nodes, attraction points 405 and 406 are added to “anchor” theleaves.

[0102] Spring 410 models the attraction, or force between the cells orclusters represented by nodes 401 and 402. Similarly, spring 415 modelsthe attraction, or force between the cells or clusters represented bynodes 401 and 403. If nodes 402 and 403 are leaf nodes, spring 420models the attraction between node 402 and anchor point 405, and spring430 models the attraction between node 403 and anchor point 406.

[0103] As described previously, an estimated curvature has beendetermined for all nodes. Given the structure of tree 400, there arefour unknowns (spring forces) and three pieces of information (thecurvature estimates for nodes 401, 402 and 403). As a result, theproblem is under determined. Consequently, an assumption should be made.The preferred assumption is that the spring tree is in equilibrium andthat the parent-child and child-attraction point spring strengths aredivided proportionally as described below. Assign the strength of spring420 to be x times some constant g, xg. Spring strength 430 may then beassigned (1−x)g. Similarly, spring strength 410 may be assigned xh andspring strength 415 correspondingly is assigned (1−x)h.

[0104] Expressing an objective function as a spring strength,MOF=a(x−x₀)², the second derivative is given as MOF″=2a. Consequently,because the tree segment is in balance, the curvature of the parentcluster, Cp is 2g, or g=Cp/2. With a known value for g, x and h may bedetermined by well known means.

[0105] According to an embodiment of the present invention, step 140 isdiscussed in greater detail below. To determine spring strengths in amore generalized tree, the tree is traversed from the top of tree, theroot node, once (estimated) curvatures have been determined. FIG. 5illustrates a five-level tree binary tree 500, according to anembodiment of the present invention. It is to be appreciated that thetree does not need to be perfectly balanced. For clarity, the springsymbols between nodes are not depicted. Node 501 is the root node oftree 500. Node 505 is a leaf node, representing a single cell of anintegrated circuit design. Nodes 502, 504 and 504 are both parent nodes,representing clusters, to the nodes below them, and child nodes to thenodes above them. Springs 511-514 represent the attractive forcesbetween the respective cells and clusters of cells. Spring 515represents the attraction of node 505 to its attraction point 506.

[0106] As described previously, the spring strengths may be determinedbased upon an assumption of equilibrium. The value xh is assigned to thecombination spring from the root down the left side of the tree to thelevel of the leaves. The value xg is assigned to the sum of the springattractions to the left-half leaves' respective attraction points.Likewise, (1−x)h is assigned to the combination spring from the rootdown the right side of the tree to the level of the leaves, and (1−x)gis assigned to the sum of the spring attractions to the right-halfleaves' respective attraction points.

[0107]FIG. 6 illustrates the right half of tree 500, according to anembodiment of the present invention. The value e=xh represents thestrength of the combination spring of the other half of the tree, basedupon the equilibrium assumption. The value h′=(1−x)h represents thestrength of the combination spring of the right half of the tree, alsobased upon the equilibrium assumption. The value g′=(1−x)g representsthe sum of the spring attractions to the right-half leaves' respectiveattraction points. Unlike the simpler case described in FIG. 4, thecurvature of the parent node, e.g., node 502, is not just a function ofthe (combined) g′ spring. Rather, the e spring now acts upon a non-rootparent node. Thus, Relation 9 below describes the interaction betweenthe new subset of springs and combinations. $\begin{matrix}{\frac{C\quad p}{2} = {g^{\prime} + \frac{e\quad h^{\prime}}{e + h^{\prime}}}} & (9)\end{matrix}$

[0108] Where Cp is the curvature of the parent node, e.g., node 502.

[0109] Further, $\begin{matrix}{{{\frac{1}{2}\left( {C_{c1} + C_{c2}} \right)} = {{\frac{1}{2}C\quad p} + {2{x^{\prime}\left( {1 - x^{\prime}} \right)}\left( {h^{''} - \frac{e\quad h^{\prime}}{e + h^{\prime}}} \right)}}}{{g\quad p} = \frac{h^{\prime}h^{''}}{h^{''} - h^{\prime}}}} & (10)\end{matrix}$

[0110] where C_(c1) and C_(c2) are the curvatures of the child nodes,e.g., node 503 and its sibling 507, and gp is the strength of spring511.

[0111] By the use of Relations 9 and 10, a general binary tree ofsprings may be recursively traversed to determine all of the springforces. Occasionally, a spring force may appear to be negative. Forexample, a negative spring force appears to be pushing adjacent nodesapart. Under such circumstances, processing of the tree may notconverge. According to an embodiment of the present invention, anegative spring force may be replaced with a positive approximatedspring force.

[0112] The curvature of the objective function of the placer (the MOF)is modeled by the curvature of the objective function of the system ofsprings. The objective function of the system of springs is the energystored in the system of springs. Relation 11 below illustrates theenergy of the system of springs. The energy of a system of springs isthe sum of the energy in each spring, given by a spring constant, k,times the square of the spring's displacement. $\begin{matrix}{{F\left( {{ob},{spring}} \right)} = {\frac{1}{2}{\sum\limits_{\underset{\langle{i,j}\rangle}{springs}}{k_{i\quad j}\left( {x_{i} - x_{j}} \right)}^{2}}}} & (11)\end{matrix}$

[0113] The curvature of the spring objective function (Relation 11) issimilar to the curvature of the master objective function for placement(Relation 1). Consequently, a preconditioning for the spring objectivefunction may be used to precondition the master objective function.

[0114] The second derivative of the spring objective function withrespect to its coordinates is constructed, which results in a Hessianmatrix. It is to be appreciated that the Hessian corresponding to a treeof springs model is extremely sparse since each node is coupled to atmost three other nodes. In matrix notation, $\begin{matrix}{{F\left( {{ob},{spring}} \right)} = {\frac{1}{2}{\left( {{x\left( {\,{*{vars}}} \right)} - {x_{0}\left( {\,{*{vars}}} \right)}} \right)^{T} \cdot H \cdot \left( {{x\left( {\,{*{vars}}} \right)} - {x_{0}\left( {\,{*{vars}}} \right)}} \right)}}} & (12)\end{matrix}$

[0115] where the notation *vars indicates a vector quantity.

[0116] Previously, transform A was defined such that x(*vars)=Ay(*vars)and y(*vars)=A⁻¹x(*vars). Relation 12 may be rewritten as Relation 13,below: $\begin{matrix}{{F\left( {{ob},{spring}} \right)} = {\frac{1}{2}\left( {A\quad y{{(*}{\left. {vars} \right) - {Ay}_{0}{{(*}{\left. \left. {vars} \right) \right)^{T} \cdot H \cdot \left( {Ay}{{(*}{\left. {vars} \right) -}} \right.}}}}} \right.}} & (13) \\{\quad {Ay}_{0}{{(*}\left. \left. {vars} \right) \right)}} & \quad \\{\quad {\frac{1}{2}\left( {y{{(*}{\left. {vars} \right) - y_{0}{{(*}{{\left. \left. {vars} \right) \right)^{T} \cdot A^{T}}{{HA} \cdot \left( {y{{(*}{\left. {vars} \right) -}}} \right.}}}}}} \right.}} & \quad \\{\quad {y_{0}{{(*}\left. \left. {vars} \right) \right)}}} & \quad\end{matrix}$

[0117] If A=H^(−1/2), the square root of the inverse Hessian, then(A^(T)HA) is the identity matrix. Thus, the spring objective function is½ times a constant times the y displacement squared,$\frac{1}{2}{c\left( {y{{(*}{\left. {vars} \right) - y_{0}{{(*}{\left. \left. {vars} \right) \right)^{2}.}}}}} \right.}$

[0118] A relation of this form is well understood. For example, thederivative is c(y−y_(o)) which points perfectly at the minimumregardless of how many dimensions are present.

[0119] Previously, a gradient transform A_(G) was defined, such thatg_(y)(*vars)=A_(G)g_(x)(*vars).

[0120] The Hessian has a tree structure reflective of the tree ofsprings model. By a method of Gaussian elimination starting at theleaves, walking to the top of the tree, in effect each child node onlyinteracts with its parent node. The parent-child off-diagonal entry maybe eliminated. Advantageously, this elimination may be performed withoutfill in and in a single step per node. As a beneficial result, theelimination process proceeds in highly desirable linear time withrespect to N.

[0121] To construct the A transformation matrix such that A^(T)HA is theidentity matrix, A is defined according to Relation 14 below:$\begin{matrix}{A = {\prod\limits_{i = 1}^{N}\quad \left( {F_{i}D_{i}} \right)}} & (14)\end{matrix}$

[0122] where F_(i) is a matrix for performing Gaussian elimination, withones on the diagonal, zeros elsewhere except for a term in the i-jlocation, f_(i) to eliminate an off-diagonal element. D_(i) is a scalingmatrix, with ones on the diagonal, except for one entry that scales thei^(th) diagonal element of H to be one.

[0123] The transforms x(*vars)=Ay(*vars) and y(*vars)=A⁻¹x(*vars) may berestated in a form similar to Relation 13 by use of the expansion of A:

x(*vars)=((F ₁ D ₁)(F ₂ D ₂) . . . (F _(N) D _(N)))y(*vars)  (15)

y(*vars)=((D _(N) ⁻¹ F _(N) ⁻¹)(D _(N−1) ⁻¹ F _(N−1) ⁻¹) . . . (D ₁ ⁻¹ F₁ ⁻¹))x(*vars)  (16)

[0124] Similarly,g_(y)(*vars) = A^(T)HA(y(*vars) − y₀(*vars))   = A^(T)H(x(*vars) − x₀(*vars))   = A^(T)g_(x)(*vars)

[0125] because A(y(*vars)−y₀(*vars))=x(*vars)−x₀(*vars).

[0126] Advantageously, according to an embodiment of the presentinvention, it is not necessary to construct or store the F and Dmatrices. Nor is it required to actually perform the matrixmultiplication operations. Rather the simple scaling and elimination ofthe very sparse matrix operations may be performed as scalar operations.

[0127] According to an embodiment of the present invention, apreconditioning (set of preconditioning values) may be determined andapplied at multiple points in a placement process. Advantageously, theentire process for building the tree takes on the order of N log N timeand on the order of N memory. As such, it can be done many times duringa placement without a deleterious increase in total run time. Multipleterms of a master objective function, for example wire length anddensity, vary according to the actual placement of cells. A smoothingvariable, alpha, is used to alter the MOF through multiple passes of aconjugate-gradient placement process. Alpha may generally be altered oneach pass until the process terminates or convergence is reached. A newpreconditioning should be determined each time alpha is changed.

[0128] In this novel manner, one or more preconditionings of anintegrated circuit cell placement problem may be generated in lineartime. Each preconditioning enables a placement process to converge farmore quickly than is typically otherwise possible. As a beneficialconsequence, a placement employing embodiments of the present inventionmay complete a placement process far more rapidly and with higherquality results than the conventional art.

[0129]FIG. 7 illustrates circuitry of computer system 700, which mayform a platform for the implementation of embodiments of the presentinvention. Computer system 700 includes an address/data bus 750 forcommunicating information, a central processor 705 functionally coupledwith the bus for processing information and instructions, a volatilememory 715 (e.g., random access memory RAM) coupled with the bus 750 forstoring information and instructions for the central processor 705 and anon-volatile memory 710 (e.g., read only memory ROM) coupled with thebus 750 for storing static information and instructions for theprocessor 705. Computer system 700 also optionally includes achangeable, non-volatile memory 720 (e.g., flash) for storinginformation and instructions for the central processor 705, which can beupdated after the manufacture of system 700.

[0130] Computer system 700 also optionally includes a data storagedevice 735 (e.g., a rotating magnetic disk) coupled with the bus 750 forstoring information and instructions.

[0131] Also included in computer system 700 of FIG. 7 is an optionalalphanumeric input device 730. Device 730 can communicate informationand command selections to the central processor 700. Device 730 may takethe form of a touch sensitive digitizer panel or typewriter-stylekeyboard. Display device 725 utilized with the computer system 700 maybe a liquid crystal display (LCD) device, cathode ray tube (CRT), fieldemission device (FED, also called flat panel CRT), light emitting diode(LED), plasma display device, electro-luminescent display, electronicpaper or other display device suitable for creating graphic images andalphanumeric characters recognizable to the user. Optional signalinput/output communication device 740 is also coupled to bus 750.

[0132] Embodiments of the present invention precondition a placing ofcells of an integrated circuit design. Further embodiments of thepresent invention estimate the curvature of an objective function usedto optimize the placement of cells of an integrated circuit design.Still further embodiments of the present invention exploit a sequentialnature of processing cells to solve a system of relations in a veryefficient manner.

[0133] The preferred embodiment of the present invention, placing cellsof an IC design using partition preconditioning, is thus described.While the present invention has been described in particularembodiments, it should be appreciated that the present invention shouldnot be construed as limited by such embodiments, but rather construedaccording to the below claims.

What is claimed is:
 1. A computer implemented method for placing ofcircuit elements of an integrated circuit design comprising: groupingcells of an integrated circuit design to model curvature of an objectivefunction, said grouping producing a plurality of cell clusters;estimating curvature of said objective function for each of said cellclusters; describing interactions between said cell clusters as arelation; determining a set of preconditioning values which achieves aseparation of variables of said relation; and placing said circuitelements using said preconditioning values.
 2. The method as describedin claim 1 wherein said grouping comprises merging cells based upon aminimum cell area.
 3. The method as described in claim 1 wherein saidplurality of cell clusters is modeled in a data structure in computermemory as a tree structure.
 4. The method as described in claim 3wherein said tree structure is a binary tree.
 5. The method as describedin claim 1 wherein said relation is quadratic.
 6. The method asdescribed in claim 5 wherein said interactions between said cellclusters are modeled in a data structure in computer memory as springs.7. The method as described in claim 5 wherein a calculation of wirelength comprises a weighting factor.
 8. The method as described in claim1 wherein said relation is not quadratic.
 9. The method as described inclaim 1 further comprising transforming variables to a preconditioningdomain.
 10. A computer implemented method for placing circuit elementsof an integrated circuit design comprising: receiving a netlistdescribing a physical integrated circuit, said netlist comprising aplurality of cells having an initial cell placement and wire connectionsbetween said plurality of cells; determining a function of cellplacement of said plurality of cells wherein said function is continuousand differentiable; determining a set of preconditioning values whichachieves a separation of variables in said function; and performingmultiple iterations of an automatic placer process to determine asolution to said function that simultaneously minimizes said functionwith respect to wire length and uneven cell distribution, wherein saidautomatic placer process utilizes a conjugate-gradient optimizationprocess and wherein said automatic placer process utilizes saidpreconditioning values to determine said solution and wherein furthersaid solution comprises a final cell placement of said plurality ofcells of said netlist.
 11. A method as described in claim 10 whereinsaid function is not quadratic terms of wire length of said wireconnections.
 12. A method as described in claim 10 wherein said functioncomprises a wire length objective function for measuring wire lengthsbetween cells of said plurality of cells of said netlist.
 13. A methodas described in claim 12 where said function also comprises a delayobjective function for measuring a worst path signal delay through saidnetlist based on each cell placement and wherein said automatic placerprocess also simultaneously minimizes said worst path signal delay alongwith wire length and uneven cell distribution.
 14. A method as describedin claim 13 further comprising performing automatic buffer insertionalong said wire connections and wherein said function computes saidworst path signal delay based on said buffer insertion.
 15. A method asdescribed in claim 10 wherein said preconditioning values are dependenton cell size as well as cell placement.
 16. A method as described inclaim 11 wherein said function comprises a density objective functionfor representing cell distribution within each cell placement, saiddensity objective function determined by: defining a field of discretegrid points within said chip area; determining, for each cell, spatialpotentials affecting grid points near each cell; determining a summedpotential for each grid point of said chip area by summing spatialpotential contributions from all cells for each grid point; anddetermining a result of said density objective function by determiningan error, at each grid point, between its summed potential and anaverage potential.
 17. The method as described in claim 10 furthercomprising transforming variables to a preconditioning domain.
 18. Asystem comprising: a processor coupled to a bus; a memory coupled tosaid bus and wherein said memory contains instructions that whenexecuted implement a method for preconditioning a placing of circuitelements of an integrated circuit design, said method comprising:grouping cells of an integrated circuit design to model curvature of anobjective function, said grouping producing a plurality of cellclusters; estimating curvature of said objective function for each ofsaid cell clusters; describing interactions between said cell clustersas a relation; and determining a set of preconditioning values whichachieves a separation of variables of said relation.
 19. The system asdescribed in claim 18 wherein said grouping comprises merging cellsbased upon a minimum cell area.
 20. The system as described in claim 18wherein said plurality of cell clusters is modeled as a tree structure.21. The system as described in claim 20 wherein said tree structure is abinary tree.
 22. The system as described in claim 18 wherein saidrelation is quadratic.
 23. The system as described claim 22 wherein saidinteractions between said cell clusters are modeled as springs.
 24. Thesystem as described in claim 18 wherein a calculation of wire lengthcomprises a weighting factor.
 25. The system as described in claim 18wherein said relation is quadratic.
 26. The system as described in claim18 further comprising transforming variables to a preconditioningdomain.
 27. The system as described in claim 18 further comprisingplacing said cells using said preconditioning values.
 28. Acomputer-readable medium having computer-readable program code embodiedtherein for causing a computer system to perform a method forpreconditioning a placing of circuit elements of an integrated circuitdesign, said method comprising: grouping cells of an integrated circuitdesign to model curvature of an objective function, said groupingproducing a plurality of cell clusters; estimating curvature of saidobjective function for each of said cell clusters; describinginteractions between said cell clusters as a relation; and determining aset of preconditioning values which achieves a separation of variablesof said relation.
 29. The computer-readable medium of claim 28 whereinsaid method further comprises placing said cells using saidpreconditioning values.